package com.xgf.util.base;

import org.springframework.ui.ModelMap;

/**
 * Created by Administrator on 2016/10/28.
 */
public class BusException extends RuntimeException {
    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    private int code;
    private String message;
    private ModelMap data;

    public ModelMap getData() {
        return data;
    }

    public void setData(ModelMap data) {
        this.data = data;
    }


    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    /**
     *
     * @param code 注意：请使用RetCode中的静态代码，并且不能使用值为-1的变量或者值
     */
    public BusException(int code){
        if (code ==-1){
            throw new RuntimeException("此段代码code的值不能为-1，请使用 code ,message ,data 的方法");
        }
        this.setCode(code);
        this.setMessage("");
        this.setData(null);
    }

    /**
     *
     * @param code  code 注意：请使用RetCode中的静态代码，并且不能使用值为-1的变量或者值
     * @param message 提示信息
     */
    public BusException(int code,String message){
        if (code ==-1){
            throw new RuntimeException("throw BusException,此段代码code的值不能为-1，请使用 code ,message ,data 的方法");
        }
        this.setCode(code);
        this.setMessage(message);
        this.setData(null);
    }

    /**
     *
     * @param code  code 注意：请使用RetCode中的静态代码，code为-1时，data不能为空
     * @param message
     * @param data  data,注意：如果code=-1，则必须将data赋值
     */
    public BusException(int code,String message,ModelMap data){
        this.setCode(code);
        this.setMessage(message);
        if(code ==-1 && data.equals(null)){
            throw new RuntimeException("code为-1时，必须指定data");
        }
        this.setData(data);
    }


    public BusException(String  message){
        this.setCode(RetCode.RET_FAILED);
        this.setMessage(message);
        this.setData(null);
    }

    public BusException(String  message,ModelMap data){
        this.setCode(RetCode.RET_FAILED);
        this.setMessage(message);
        this.setData(data);
    }

}
